--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Node / ReticulumProjects / MeshChatX.git / files / visualiser-wasm / internal / hashpos / hashpos_test.go
Displaying Raw • Download
visualiser-wasm/internal/hashpos/hashpos_test.go 65ca9ddc823fcc2c8f8653c553b944b85db0875f (65ca9ddc) Text, 3.03 KB
T8b949e// SPDX-License-Identifier: 0BSD
Tff7b72package Te6edf3hashpos_test
Tff7b72import Tb4b4b4(
Ta5d6ff"math"
Ta5d6ff"sync"
Ta5d6ff"testing"
Ta5d6ff"github.com/Quad4-Software/MeshChatX/visualiser-wasm/internal/hashpos"
Ta5d6ff"github.com/Quad4-Software/MeshChatX/visualiser-wasm/internal/leaktest"
Tb4b4b4)
Tff7b72func Te6edf3TestAngle01StableTb4b4b4(Te6edf3t Tff7b72*Te6edf3testingTb4b4b4.Te6edf3TTb4b4b4) Tb4b4b4{
Te6edf3a1 Tff7b72:= Te6edf3hashposTb4b4b4.Te6edf3Angle01Tb4b4b4(Ta5d6ff"abc"Tb4b4b4)
Te6edf3a2 Tff7b72:= Te6edf3hashposTb4b4b4.Te6edf3Angle01Tb4b4b4(Ta5d6ff"abc"Tb4b4b4)
Tff7b72if Te6edf3a1 Tff7b72!= Te6edf3a2 Tb4b4b4{
Te6edf3tTb4b4b4.Te6edf3FatalfTb4b4b4(Ta5d6ff"unstable angle: %v vs %v"Tb4b4b4, Te6edf3a1Tb4b4b4, Te6edf3a2Tb4b4b4)
Tb4b4b4}
Tff7b72if Te6edf3a1 Tb4b4b4< T79c0ff0 Tff7b72|| Te6edf3a1 Tff7b72>= T79c0ff2Tff7b72*Te6edf3mathTb4b4b4.Te6edf3Pi Tb4b4b4{
Te6edf3tTb4b4b4.Te6edf3FatalfTb4b4b4(Ta5d6ff"angle out of range: %v"Tb4b4b4, Te6edf3a1Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tff7b72func Te6edf3TestDist01RangeTb4b4b4(Te6edf3t Tff7b72*Te6edf3testingTb4b4b4.Te6edf3TTb4b4b4) Tb4b4b4{
Te6edf3d Tff7b72:= Te6edf3hashposTb4b4b4.Te6edf3Dist01Tb4b4b4(Ta5d6ff"node"Tb4b4b4, Ta5d6ff"r"Tb4b4b4)
Tff7b72if Te6edf3d Tb4b4b4< T79c0ff0 Tff7b72|| Te6edf3d Tff7b72>= T79c0ff1 Tb4b4b4{
Te6edf3tTb4b4b4.Te6edf3FatalfTb4b4b4(Ta5d6ff"dist out of range: %v"Tb4b4b4, Te6edf3dTb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tff7b72func Te6edf3TestXYAroundFiniteTb4b4b4(Te6edf3t Tff7b72*Te6edf3testingTb4b4b4.Te6edf3TTb4b4b4) Tb4b4b4{
Te6edf3xTb4b4b4, Te6edf3y Tff7b72:= Te6edf3hashposTb4b4b4.Te6edf3XYTb4b4b4(Ta5d6ff"n1"Tb4b4b4, T79c0ff600Tb4b4b4, T79c0ff200Tb4b4b4)
Tff7b72if Te6edf3mathTb4b4b4.Te6edf3IsNaNTb4b4b4(Te6edf3xTb4b4b4) Tff7b72|| Te6edf3mathTb4b4b4.Te6edf3IsNaNTb4b4b4(Te6edf3yTb4b4b4) Tff7b72|| Te6edf3mathTb4b4b4.Te6edf3IsInfTb4b4b4(Te6edf3xTb4b4b4, T79c0ff0Tb4b4b4) Tff7b72|| Te6edf3mathTb4b4b4.Te6edf3IsInfTb4b4b4(Te6edf3yTb4b4b4, T79c0ff0Tb4b4b4) Tb4b4b4{
Te6edf3tTb4b4b4.Te6edf3FatalfTb4b4b4(Ta5d6ff"bad XY: %v %v"Tb4b4b4, Te6edf3xTb4b4b4, Te6edf3yTb4b4b4)
Tb4b4b4}
Te6edf3axTb4b4b4, Te6edf3ay Tff7b72:= Te6edf3hashposTb4b4b4.Te6edf3AroundTb4b4b4(Ta5d6ff"n1"Tb4b4b4, T79c0ff10Tb4b4b4, T79c0ff20Tb4b4b4, T79c0ff150Tb4b4b4, T79c0ff150Tb4b4b4)
Tff7b72if Te6edf3mathTb4b4b4.Te6edf3IsNaNTb4b4b4(Te6edf3axTb4b4b4) Tff7b72|| Te6edf3mathTb4b4b4.Te6edf3IsNaNTb4b4b4(Te6edf3ayTb4b4b4) Tb4b4b4{
Te6edf3tTb4b4b4.Te6edf3FatalfTb4b4b4(Ta5d6ff"bad Around: %v %v"Tb4b4b4, Te6edf3axTb4b4b4, Te6edf3ayTb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tff7b72func Te6edf3TestHashposNoGoroutineLeakTb4b4b4(Te6edf3t Tff7b72*Te6edf3testingTb4b4b4.Te6edf3TTb4b4b4) Tb4b4b4{
Tff7b72defer Te6edf3leaktestTb4b4b4.Te6edf3CheckTb4b4b4(Te6edf3tTb4b4b4)Tb4b4b4(Tb4b4b4)
Tff7b72for Te6edf3i Tff7b72:= T79c0ff0Tb4b4b4; Te6edf3i Tb4b4b4< T79c0ff1000Tb4b4b4; Te6edf3iTff7b72++ Tb4b4b4{
Te6edf3_Tb4b4b4, Te6edf3_ Tb4b4b4= Te6edf3hashposTb4b4b4.Te6edf3XYTb4b4b4(Ta5d6ff"node"Tb4b4b4, T79c0ff100Tb4b4b4, T79c0ff50Tb4b4b4)
Te6edf3_Tb4b4b4, Te6edf3_ Tb4b4b4= Te6edf3hashposTb4b4b4.Te6edf3AroundTb4b4b4(Ta5d6ff"node"Tb4b4b4, T79c0ff1Tb4b4b4, T79c0ff2Tb4b4b4, T79c0ff10Tb4b4b4, T79c0ff10Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tff7b72func Te6edf3TestHashposRaceTb4b4b4(Te6edf3t Tff7b72*Te6edf3testingTb4b4b4.Te6edf3TTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3wg Te6edf3syncTb4b4b4.Te6edf3WaitGroup
Tff7b72for Te6edf3i Tff7b72:= T79c0ff0Tb4b4b4; Te6edf3i Tb4b4b4< T79c0ff32Tb4b4b4; Te6edf3iTff7b72++ Tb4b4b4{
Te6edf3wgTb4b4b4.Te6edf3AddTb4b4b4(T79c0ff1Tb4b4b4)
Tff7b72go Tff7b72funcTb4b4b4(Te6edf3n Tffa657intTb4b4b4) Tb4b4b4{
Tff7b72defer Te6edf3wgTb4b4b4.Te6edf3DoneTb4b4b4(Tb4b4b4)
Te6edf3id Tff7b72:= Ta5d6ff"race-" Tff7b72+ Tffa657stringTb4b4b4(Tffa657runeTb4b4b4(Ta5d6ff'a'Tff7b72+Te6edf3nTff7b72%T79c0ff26Tb4b4b4)Tb4b4b4)
Tff7b72for Te6edf3j Tff7b72:= T79c0ff0Tb4b4b4; Te6edf3j Tb4b4b4< T79c0ff200Tb4b4b4; Te6edf3jTff7b72++ Tb4b4b4{
Te6edf3_ Tb4b4b4= Te6edf3hashposTb4b4b4.Te6edf3Angle01Tb4b4b4(Te6edf3idTb4b4b4)
Te6edf3_ Tb4b4b4= Te6edf3hashposTb4b4b4.Te6edf3Dist01Tb4b4b4(Te6edf3idTb4b4b4, Ta5d6ff"r"Tb4b4b4)
Te6edf3_Tb4b4b4, Te6edf3_ Tb4b4b4= Te6edf3hashposTb4b4b4.Te6edf3XYTb4b4b4(Te6edf3idTb4b4b4, T79c0ff600Tb4b4b4, T79c0ff200Tb4b4b4)
Te6edf3_Tb4b4b4, Te6edf3_ Tb4b4b4= Te6edf3hashposTb4b4b4.Te6edf3AroundTb4b4b4(Te6edf3idTb4b4b4, T79c0ff0Tb4b4b4, T79c0ff0Tb4b4b4, T79c0ff150Tb4b4b4, T79c0ff150Tb4b4b4)
Tb4b4b4}
Tb4b4b4}Tb4b4b4(Te6edf3iTb4b4b4)
Tb4b4b4}
Te6edf3wgTb4b4b4.Te6edf3WaitTb4b4b4(Tb4b4b4)
Tb4b4b4}
Tff7b72func Te6edf3FuzzAngle01Tb4b4b4(Te6edf3f Tff7b72*Te6edf3testingTb4b4b4.Te6edf3FTb4b4b4) Tb4b4b4{
Te6edf3fTb4b4b4.Te6edf3AddTb4b4b4(Ta5d6ff""Tb4b4b4)
Te6edf3fTb4b4b4.Te6edf3AddTb4b4b4(Ta5d6ff"me"Tb4b4b4)
Te6edf3fTb4b4b4.Te6edf3AddTb4b4b4(Ta5d6ff"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"Tb4b4b4)
Te6edf3fTb4b4b4.Te6edf3FuzzTb4b4b4(Tff7b72funcTb4b4b4(Te6edf3t Tff7b72*Te6edf3testingTb4b4b4.Te6edf3TTb4b4b4, Te6edf3id Tffa657stringTb4b4b4) Tb4b4b4{
Te6edf3a Tff7b72:= Te6edf3hashposTb4b4b4.Te6edf3Angle01Tb4b4b4(Te6edf3idTb4b4b4)
Tff7b72if Te6edf3mathTb4b4b4.Te6edf3IsNaNTb4b4b4(Te6edf3aTb4b4b4) Tff7b72|| Te6edf3mathTb4b4b4.Te6edf3IsInfTb4b4b4(Te6edf3aTb4b4b4, T79c0ff0Tb4b4b4) Tb4b4b4{
Te6edf3tTb4b4b4.Te6edf3FatalfTb4b4b4(Ta5d6ff"bad angle %v for %q"Tb4b4b4, Te6edf3aTb4b4b4, Te6edf3idTb4b4b4)
Tb4b4b4}
Te6edf3d Tff7b72:= Te6edf3hashposTb4b4b4.Te6edf3Dist01Tb4b4b4(Te6edf3idTb4b4b4, Ta5d6ff"r"Tb4b4b4)
Tff7b72if Te6edf3d Tb4b4b4< T79c0ff0 Tff7b72|| Te6edf3d Tff7b72>= T79c0ff1 Tff7b72|| Te6edf3mathTb4b4b4.Te6edf3IsNaNTb4b4b4(Te6edf3dTb4b4b4) Tb4b4b4{
Te6edf3tTb4b4b4.Te6edf3FatalfTb4b4b4(Ta5d6ff"bad dist %v for %q"Tb4b4b4, Te6edf3dTb4b4b4, Te6edf3idTb4b4b4)
Tb4b4b4}
Te6edf3xTb4b4b4, Te6edf3y Tff7b72:= Te6edf3hashposTb4b4b4.Te6edf3XYTb4b4b4(Te6edf3idTb4b4b4, T79c0ff1Tb4b4b4, T79c0ff1Tb4b4b4)
Tff7b72if Te6edf3mathTb4b4b4.Te6edf3IsNaNTb4b4b4(Te6edf3xTb4b4b4) Tff7b72|| Te6edf3mathTb4b4b4.Te6edf3IsNaNTb4b4b4(Te6edf3yTb4b4b4) Tb4b4b4{
Te6edf3tTb4b4b4.Te6edf3FatalfTb4b4b4(Ta5d6ff"bad xy"Tb4b4b4)
Tb4b4b4}
Tb4b4b4}Tb4b4b4)
Tb4b4b4}
Tff7b72func Te6edf3BenchmarkAngle01Tb4b4b4(Te6edf3b Tff7b72*Te6edf3testingTb4b4b4.Te6edf3BTb4b4b4) Tb4b4b4{
Te6edf3bTb4b4b4.Te6edf3ReportAllocsTb4b4b4(Tb4b4b4)
Tff7b72for Te6edf3i Tff7b72:= T79c0ff0Tb4b4b4; Te6edf3i Tb4b4b4< Te6edf3bTb4b4b4.Te6edf3NTb4b4b4; Te6edf3iTff7b72++ Tb4b4b4{
Te6edf3_ Tb4b4b4= Te6edf3hashposTb4b4b4.Te6edf3Angle01Tb4b4b4(Ta5d6ff"destinationhash0123456789abcdef"Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tff7b72func Te6edf3BenchmarkDist01Tb4b4b4(Te6edf3b Tff7b72*Te6edf3testingTb4b4b4.Te6edf3BTb4b4b4) Tb4b4b4{
Te6edf3bTb4b4b4.Te6edf3ReportAllocsTb4b4b4(Tb4b4b4)
Tff7b72for Te6edf3i Tff7b72:= T79c0ff0Tb4b4b4; Te6edf3i Tb4b4b4< Te6edf3bTb4b4b4.Te6edf3NTb4b4b4; Te6edf3iTff7b72++ Tb4b4b4{
Te6edf3_ Tb4b4b4= Te6edf3hashposTb4b4b4.Te6edf3Dist01Tb4b4b4(Ta5d6ff"destinationhash0123456789abcdef"Tb4b4b4, Ta5d6ff"r"Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tff7b72func Te6edf3BenchmarkXYTb4b4b4(Te6edf3b Tff7b72*Te6edf3testingTb4b4b4.Te6edf3BTb4b4b4) Tb4b4b4{
Te6edf3bTb4b4b4.Te6edf3ReportAllocsTb4b4b4(Tb4b4b4)
Tff7b72for Te6edf3i Tff7b72:= T79c0ff0Tb4b4b4; Te6edf3i Tb4b4b4< Te6edf3bTb4b4b4.Te6edf3NTb4b4b4; Te6edf3iTff7b72++ Tb4b4b4{
Te6edf3_Tb4b4b4, Te6edf3_ Tb4b4b4= Te6edf3hashposTb4b4b4.Te6edf3XYTb4b4b4(Ta5d6ff"destinationhash0123456789abcdef"Tb4b4b4, T79c0ff600Tb4b4b4, T79c0ff200Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tff7b72func Te6edf3BenchmarkAroundTb4b4b4(Te6edf3b Tff7b72*Te6edf3testingTb4b4b4.Te6edf3BTb4b4b4) Tb4b4b4{
Te6edf3bTb4b4b4.Te6edf3ReportAllocsTb4b4b4(Tb4b4b4)
Tff7b72for Te6edf3i Tff7b72:= T79c0ff0Tb4b4b4; Te6edf3i Tb4b4b4< Te6edf3bTb4b4b4.Te6edf3NTb4b4b4; Te6edf3iTff7b72++ Tb4b4b4{
Te6edf3_Tb4b4b4, Te6edf3_ Tb4b4b4= Te6edf3hashposTb4b4b4.Te6edf3AroundTb4b4b4(Ta5d6ff"destinationhash0123456789abcdef"Tb4b4b4, T79c0ff100Tb4b4b4, T79c0ff200Tb4b4b4, T79c0ff150Tb4b4b4, T79c0ff150Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tff7b72func Te6edf3TestHashposZeroAllocsTb4b4b4(Te6edf3t Tff7b72*Te6edf3testingTb4b4b4.Te6edf3TTb4b4b4) Tb4b4b4{
Te6edf3allocs Tff7b72:= Te6edf3testingTb4b4b4.Te6edf3AllocsPerRunTb4b4b4(T79c0ff1000Tb4b4b4, Tff7b72funcTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3_ Tb4b4b4= Te6edf3hashposTb4b4b4.Te6edf3Angle01Tb4b4b4(Ta5d6ff"destinationhash0123456789abcdef"Tb4b4b4)
Te6edf3_ Tb4b4b4= Te6edf3hashposTb4b4b4.Te6edf3Dist01Tb4b4b4(Ta5d6ff"destinationhash0123456789abcdef"Tb4b4b4, Ta5d6ff"r"Tb4b4b4)
Te6edf3_Tb4b4b4, Te6edf3_ Tb4b4b4= Te6edf3hashposTb4b4b4.Te6edf3XYTb4b4b4(Ta5d6ff"destinationhash0123456789abcdef"Tb4b4b4, T79c0ff600Tb4b4b4, T79c0ff200Tb4b4b4)
Te6edf3_Tb4b4b4, Te6edf3_ Tb4b4b4= Te6edf3hashposTb4b4b4.Te6edf3AroundTb4b4b4(Ta5d6ff"destinationhash0123456789abcdef"Tb4b4b4, T79c0ff0Tb4b4b4, T79c0ff0Tb4b4b4, T79c0ff150Tb4b4b4, T79c0ff150Tb4b4b4)
Tb4b4b4}Tb4b4b4)
Tff7b72if Te6edf3allocs Tff7b72!= T79c0ff0 Tb4b4b4{
Te6edf3tTb4b4b4.Te6edf3FatalfTb4b4b4(Ta5d6ff"expected 0 allocs, got %v"Tb4b4b4, Te6edf3allocsTb4b4b4)
Tb4b4b4}
Tb4b4b4}
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────